home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Science / MAL ©P.f.Howden 1⁄1⁄89 / PLOT FUNS < prev    next >
Text File  |  1989-07-11  |  3KB  |  51 lines

  1. 'WINDOW CLOSE 1:WINDOW 2,,(0,20)-(525,350):'this line experimental only.
  2. 1 CLEAR:CLS:PRINT "PLOT FUNS-MultiFunction Plotter in Hi/Lo Res.Graphics.":PRINT "TYPE FUNCTIONS ON LINES 11-19 eg: 11 Y(1)=X^2-3   ,  12 Y(2)=SIN (X)+X"
  3. 2 W=70:N=10:INPUT "NUMBER OF FUNCTIONS=";Q:DIM M$(4),Y(Q),A(Q),M(Q),U(Q),Z(Q):W=W-1:P=490:Y=298:R=10:S=7:'P,Y=Screen horizontal,vertical pixels.R=Pix/line,S=Pix/letter,including space.
  4. 3 PRINT"For SLOPE plots, see notes below listing.":FOR J=0 TO INT(W/5):M$(0)=M$(0)+"v----":NEXT J:Z=(2+Q)*16-9
  5. 4 FOR J=0 TO W:M$(1)=M$(1)+"-":NEXT J:INPUT " Precision Graphics (1/0)?=";D
  6. 5 INPUT "STARTING X=";X:INPUT "X Increment (L)=";L:L1=L
  7. 6 IF D=1 THEN INPUT "Pixel Step M(if >1,plot is faster,lower precision)=";M:L=L/R:L1=2*L*M:PRINT" Note Box [] at X=0"
  8. 7 PRINT "Y(0)-AXIS ZERO(0-";W;:INPUT ")=";Y(0)
  9. 8 FOR J=1 TO Q:PRINT "Y(";J;") MULTIPLIER  M(";J;")=";:INPUT M(J):PRINT "Y(";J;") OFFSET  A(";J;")=";:INPUT A(J):NEXT J:CLS
  10. 9 PRINT "Xo=";X;";    X(vertical section)=";10*L1:'This line to  PRINTER for TEXT-style LoRes Graph.
  11. 10 FOR J=1 TO Q:PRINT"For Y(";J;"),v----v=";5/M(J);" :OFFSET=";A(J):NEXT J:IF D=1 THEN PRINT M$(0):GOSUB 160:'These lines also to PRINTER for LoRes.
  12. 11 Y(1)=10*SIN(3.14159*X)
  13. 12 Y(2)=-10*SIN(3.14159*X*2)
  14. 13 Y(3)=15:IF X>=0 THEN Y(3)=5
  15. 14 'PI=3.141592#:Y(4)=(PI*SIN(5*X)/8-EXP(PI*SQR(X+1)/8)+SQR(X+PI*5/8))*SQR(1+PI*(X-1)^2/8)/((EXP(-1*X*X)-PI/4)*(1+PI*(X+1)^2/8))+PI/8
  16. 20 IF D=1 THEN GOSUB 200:GOTO 11
  17. 30 FOR J=1 TO Q:Y(J)=INT (Y(0)+M(J)*Y(J)+A(J)+.5):NEXT J
  18. 40 IF K=0 THEN K=1:M$(2)=M$(0):GOTO 60
  19. 50 M$(2)=M$(1)
  20. 60 IF (L>0 AND X>=-L/2 AND K3=0) OR (L<0 AND X<=L/2 AND K3=0) THEN K3=1:K4=1
  21. 70 V$="+"
  22. 80 FOR J=0 TO Q:IF J=0 AND N=10 THEN N=0:GOTO 130
  23. 90 IF Y(J)>W THEN Y(J)=W:V$=">":GOTO 130
  24. 100 IF Y(J)<0 THEN Y(J)=0:V$="<":GOTO 130
  25. 110 IF J=0 THEN V$="l":GOTO 130
  26. 120 V$=CHR$(J+48)
  27. 130 IF K4=1 THEN V$="O"
  28. 140 M$(3)=MID$(M$(2),1,Y(J)):M$(4)=MID$(M$(2),Y(J)+2,W-Y(J)):M$(2)=M$(3)+V$+M$(4)
  29. 150 NEXT J:PRINT M$(2):K4=0:X=X+L:N=N+1:GOTO 11:'This line to Printer for LoRes Plot
  30. 160 IF L>0 AND X>0 OR L<0 AND X<0 THEN RETURN
  31. 170 LINE((Y(0)+1)*S-2,ABS(X/L)+3+Z)-((Y(0)+1)*S+5,ABS(X/L)-3+Z),,B:RETURN:'Sets zero box on scale
  32. '       HiRes Plot Follows:
  33. 200 IF K=0 THEN K=1:FOR J=1 TO Q:Z(J)=Y(J):NEXT J:X=X+M*L:RETURN
  34. 210 FOR J=0 TO Q:U=(A(J)+M(J)*Z(J)+Y(0)+1)*S-2:V=(A(J)+M(J)*Y(J)+Y(0)+1)*S-2
  35. 220 IF ABS (U)>3000 THEN U=3000*SGN(U)
  36. 225 IF ABS (V)>3000 THEN V=3000*SGN(V)
  37. 230 LINE(U,Z)-(V,Z+M):Z(J)=Y(J)
  38. 240 IF J=0 AND A=3 THEN A=-1:LINE-(V+3,Z+M):IF B=19 THEN B=-1:LINE-(V+6,Z+M)
  39. 270 NEXT J:Z=Z+M:IF Z+M>Y-10 THEN LOCATE 19,1:PRINT:Z=Z-16
  40. 280 X=X+M*L:A=A+1:B=B+1:RETURN
  41.  
  42. 'For Slope plotting,transfer the following lines into PLOTFUNS,where examples
  43. 'Y(1),Y(2) can be the same or different functions (remove ' marks) :    
  44. '11 Y(1)=10*SIN(3.14159*X)         ......................  this will be plotted directly
  45. '12 Z1=.0001:X=X+Z1:GOSUB 13:F1=Y(2):X=X-2*Z1:GOSUB 13:F2=Y(2):X=X+Z1:Y(2)=(F1-F2)/(2*Z1):GOTO 20
  46. '13 Y(2)=10*SIN(3.14159*X)          ......................  slope of this will be plotted
  47. '14 RETURN
  48.                                        MACINTOSH LISTING
  49.  
  50.  
  51.